package cn.superchart.common.base;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import java.io.Serializable;
import java.util.List;

/**
 * @author LONG
 */
public interface BaseService {

    <P extends BaseParam> String saveData(P  param);


    <P extends BaseParam> void saveData(List<P> param);

    <P extends BaseParam> boolean updateData(P param);


    <P> P queryData(Serializable pk,Class clz);

    <E>E queryEntity(Serializable pk);

    Long count(QueryWrapper<BaseEntity> queryWrapper);

    /**
     * 真删除的话 需要当前实体 delete_flag 覆盖父类的并且不需加 @TableLogic 这个注解
     */
    boolean delete(Serializable pk);

    List  listData();
}
